<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
	session_start();
	$dbconn = pg_connect("host=localhost port=5432 dbname=CinemaEnri user=postgres password=Quie1hoh");
	if (!$dbconn){
			die("Errore di connessione al database" . pg_last_error());
	}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="Css/screen.css" rel="stylesheet" type="text/css" media="screen"/>
<script language="JavaScript" type="text/JavaScript" src="Function.js" ></script>
<title>Cinema Enri - Prenotazione Spettacolo Riuscita</title>
</head>

<body>
<div id="logo"><img src="Images/Logo.jpg" width="220" height="100"/></div>
        <div id="Header">
             <div id="cerca">
                
            </div>
        </div>
        <div id="main">
            <div id="menu">
                <ul>
                	<div id="infoCinema">
                    	<div class="titolo">Info Cinema</div>
                        <li><a href="Index.php">Home</a></li>
                        <li><a href="Programmazione.php">Programmazione</a></li>
                    </div>
                     <?php
						$user=$_SESSION['User'];
						$admin=$_SESSION['Admin'];
						if (isset($user)){
					?>
                    <div id="utente">
                    	<div class="titolo">Servizi Utente</div>
                        <li><a href="Prenotazioni.php">Prenota un film</a></li>
                        <li><a href="PaginaPersonale.php">Pagina Personale</a></li>
                    </div>
                    <?php
						}
						if ($admin=="t"){
					?>
                    <div id="admin">
                    	<div class="titolo">Amministratore</div>
                        <li><a href="InsSpettacoli.php">Inserimento Spettacoli</a></li>
                        <li><a href="ModSpettacoli.php">Modifica Spettacoli</a></li>
                        <li><a href="InsFilm.php">Inserimento Film</a></li>
                        <li><a href="ModFilm.php">Modifica Film</a></li>
                        <li><a href="InsAttori.php">Inserimento Attori</a></li>
                        <li><a href="ModAttori.php">Modifica Attori</a></li>
                        <li><a href="InsProduzioni.php">Inserimento Produzioni</a></li>
                        <li><a href="ModPrenotazioni.php">Modifica Prenotazioni</a></li>
                    </div>
					<?php
						}
					?>
                <ul>
            </div>
            <div id="path">
            </div>
            <div id="content">
                <?php
				
					$admin=$_SESSION['Admin'];
					$user=$_SESSION['User'];
					
					if (isset($user)){
						
						$spettacolo=$_POST['spettacolo'];
						
						pg_exec($dbconn,"BEGIN TRANSACTION") or die("Impossibile iniziare la transazione: " . pg_last_error());
						if (!$ris = pg_exec($dbconn,'LOCK "tblPrenotazioni"')) {
							pg_exec($dbconn,"ROLLBACK");
							die("Impossibile Lockare la tabella Prenotazioni: " . pg_last_error());
						}
						if (!$ris = pg_exec($dbconn,'LOCK "tblPosti"')){
							pg_exec($dbconn,"ROLLBACK");
							die("Impossibile Lockare la tabella Posti: " . pg_last_error()); 
						}
						
						$qry = 'SELECT "ID" FROM "tblPrenotazioni" WHERE "ID" >= ALL (SELECT "ID" FROM "tblPrenotazioni")';
						$ris = pg_query($dbconn, $qry) or die("Impossibile leggere dalla tabella Prenotazioni: " . pg_last_error());
						$riga = pg_fetch_assoc($ris);
						if (isset($riga['ID']))
							$idPrenotazione = $riga['ID'] + 1;
						else
							$idPrenotazione = 1;
						
						$qry = 'SELECT "ID" FROM "tblPosti" WHERE "ID" >= ALL (SELECT "ID" FROM "tblPosti")';
						$ris = pg_query($dbconn, $qry) or die("Impossibile leggere dalla tabella Posti: " . pg_last_error());
						$riga = pg_fetch_assoc($ris);
						$idPosti = $riga['ID'] + 1;

													  
						$qry = 'INSERT INTO "tblPrenotazioni" ("ID","Spettacolo","Utente") VALUES
								('.$idPrenotazione.','.$spettacolo.",'".$user."')";
						if (!$ris = pg_exec($dbconn, $qry)){
							pg_exec($dbconn,"ROLLBACK");
							die("Impossibile inserire la prenotazione: " . pg_last_error());
						}
						
						
						$stringaPosti = $_POST['postiSel'];
						$posti = explode(";",$stringaPosti);
						$i = 0;
						$size = count($posti) -1;
						$dettaglioPosti = "";
						while ($i < $size){
							$posti[$i] = trim($posti[$i]);
							$indici = explode(".",$posti[$i]);
							$indici[0] = trim($indici[0]);
							$dettaglioPosti = $dettaglioPosti.$indici[0].$indici[1].", ";
							$qryPostiOccupati = "SELECT * FROM \"tblPosti\" pos JOIN \"tblPrenotazioni\" pren ON pos.\"Prenotazione\" = 
												 pren.\"ID\" WHERE \"Spettacolo\" = ". $spettacolo . " AND \"Fila\" = '" . $indici[0].
												 "' AND \"Numero\" = " . $indici[1];
												 
							$risPostiOccupati = pg_query($dbconn, $qryPostiOccupati);
							while($rigaPostiOccupati = pg_fetch_assoc($risPostiOccupati)){
								pg_exec($dbconn, "ROLLBACK");
								$error = "<h2>Prenotazione FALLITA</h2><br />Il posto: ";
								$error = $error. $indici[0].$indici[1]. " risulta essere già prenotato. Riprovare con un altro.";
								die($error);
							}
							$qry = 'INSERT INTO "tblPosti" ("ID","Fila","Numero","Prenotazione") VALUES
									('.$idPosti.",'".$indici[0]."','".$indici[1]."',".$idPrenotazione.')';
							$result = pg_exec($dbconn, $qry);
							if (!$result){
								pg_exec($dbconn,"ROLLBACK");
								die("Impossibile prenotare il posto: " . $indici[0].$indici[1]. ". " . pg_last_error());
							}
							$i++;
							$idPosti++;
						}
						
						pg_exec($dbconn,"COMMIT") or die("Impossibile concludere la transazione. " . pg_last_error());
						
						
						
						$qry = 'SELECT * FROM "tblSpettacoli" s JOIN "tblFilm" f ON s."Film" = f."ID" 
								WHERE s."ID" = '.$spettacolo;
						$ris = pg_query($dbconn, $qry) or die("Impossibile accedere alla tabella Film. " . pg_last_error());
						$riga = pg_fetch_assoc($ris);
						echo "<br /><br /><br /><h2>Inserimento prenotazione riuscito.</h2><br />";
						echo "Dettagli prenotazione: <br />";
						echo "Film: " . $riga['Titolo'] . "<br />";
						echo "Del: " . $riga['Giorno'] . "<br />";
						echo "Alle ore: " . $riga['Ora'] . "<br />";
						echo "Posti prenotati: " . substr($dettaglioPosti, 0, strlen($dettaglioPosti)-2);
						
					}
					else{
						echo "Accesso vietato alla pagina"; 
					 
					}
				?>
                
            </div>
            
            <div id="menuDestro">
                <div id="login" >
                	<?php
						$user=$_SESSION['User'];
					 	if (isset($user)){
								echo "<h2>Stato</h2>";
								echo "<h3>Benvenuto ".$user."</h3>";
								echo "<a href=LogOut.php>LogOut</a>";
						}else{
					?>
                	<h2>Login</h2>
                	<form action="Index.php" method="post">
                    	Username:<input type="text" name="Username" />
                        Password:<input type="password" name="Password" />
                        <input type="submit" value="Login" />
                         Se non sei registrato: <a href="Registrazione.php" >Registrati</a>
                    </form>
                   <?php
						}
				   ?>
                </div>
            </div>
       </div>
</div>



</body>
</html>